package com.ly.erms.generator.engine.base;

import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.ly.erms.generator.engine.config.ContextConfig;
import com.ly.erms.generator.engine.config.ControllerConfig;
import com.ly.erms.generator.engine.config.DaoConfig;
import com.ly.erms.generator.engine.config.PageConfig;
import com.ly.erms.generator.engine.config.ServiceConfig;
import com.ly.erms.generator.engine.config.SqlConfig;

/**
 * 模板生成父类
 * 
 * @author liuyang
 * @date 2018年1月15日
 */
public class AbstractTemplateEngine {

	protected ContextConfig contextConfig; 			// 全局配置
	protected ControllerConfig controllerConfig; 	// 控制器配置
	protected PageConfig pageConfig; 				// 页面配置器
	protected DaoConfig daoConfig; 					// dao配置器
	protected ServiceConfig serviceConfig; 			// Service配置
	protected SqlConfig sqlConfig; 					// sql配置
	protected TableInfo tableInfo; 					// 表的信息

	 public void initConfig() {
	        if (this.contextConfig == null) {
	            this.contextConfig = new ContextConfig();
	        }
	        if (this.controllerConfig == null) {
	            this.controllerConfig = new ControllerConfig();
	        }
	        if (this.pageConfig == null) {
	            this.pageConfig = new PageConfig();
	        }
	        if (this.daoConfig == null) {
	            this.daoConfig = new DaoConfig();
	        }
	        if (this.serviceConfig == null) {
	            this.serviceConfig = new ServiceConfig();
	        }
	        if (this.sqlConfig == null) {
	            this.sqlConfig = new SqlConfig();
	        }
	        this.contextConfig.init();

	        this.controllerConfig.setContextConfig(this.contextConfig);
	        this.controllerConfig.init();

	        this.serviceConfig.setContextConfig(this.contextConfig);
	        this.serviceConfig.init();

	        this.daoConfig.setContextConfig(this.contextConfig);
	        this.daoConfig.init();

	        this.pageConfig.setContextConfig(this.contextConfig);
	        this.pageConfig.init();

	        this.sqlConfig.setContextConfig(this.contextConfig);
	        this.sqlConfig.init();
	    }

	public ContextConfig getContextConfig() {
		return contextConfig;
	}

	public void setContextConfig(ContextConfig contextConfig) {
		this.contextConfig = contextConfig;
	}

	public ControllerConfig getControllerConfig() {
		return controllerConfig;
	}

	public void setControllerConfig(ControllerConfig controllerConfig) {
		this.controllerConfig = controllerConfig;
	}

	public PageConfig getPageConfig() {
		return pageConfig;
	}

	public void setPageConfig(PageConfig pageConfig) {
		this.pageConfig = pageConfig;
	}

	public DaoConfig getDaoConfig() {
		return daoConfig;
	}

	public void setDaoConfig(DaoConfig daoConfig) {
		this.daoConfig = daoConfig;
	}

	public ServiceConfig getServiceConfig() {
		return serviceConfig;
	}

	public void setServiceConfig(ServiceConfig serviceConfig) {
		this.serviceConfig = serviceConfig;
	}

	public SqlConfig getSqlConfig() {
		return sqlConfig;
	}

	public void setSqlConfig(SqlConfig sqlConfig) {
		this.sqlConfig = sqlConfig;
	}

	public TableInfo getTableInfo() {
		return tableInfo;
	}

	public void setTableInfo(TableInfo tableInfo) {
		this.tableInfo = tableInfo;
	}
	 
}
